/*
*******************************************************************************
COPYRIGHT 2010 Atech-Automotive
Source File Name : uds_diag_appl.h
Group            : ATECH
Author           : 
Date First Issued:    
********************************Documentation**********************************
General Purpose - This file contains the head file of appl layer function.
********************************RevisionHistory********************************
_______________________________________________________________________________
Date : MM/DD/YY                       Release : V1.0
Date : 05/10/2010                  head file of appl layer function

*******************************************************************************/

#ifndef UDS_DIAG_APPL_H
#define UDS_DIAG_APPL_H

/* #include */
#include "system.h"
#include "uds_diag_appl_cfg.h"

#include "uds_diag_interface.h"

#include "uds_diag_drv.h"
#include "uds_can_trans.h"
#include "uds_diag_fun.h"

#pragma CODE_SEG  OTHER_ROM


/* #define */

/* public data variables */
/*
** Structure for incorporating product specific I/O control by Commmand ID requests
** (mode 0x2F).
** local_id         = identifies parameter for which I/O action is requested
** access_mode      = specifies which mode supported for the id
** data_length      = length of parameter data
** function_handler = function called to write parameter data
*/

/* Variables */

/* public function prototypes */
extern BOOL UdsAppl_isInDiagMode(void);
extern void UdsAppl_Init(void);
extern void UdsAppl_Handler10ms(void);
extern void UdsAppl_Handler1ms(void);
extern void UdsAppl_WriteE2ByPara(UINT16 add, UINT8 len, UINT8 * pData);

/****************************************************************************/
/**
 * Function Name: udsAppl_GetCommCtrlFlag
 * Description: none
 *
 * Param:   none
 * Return:  none
 * Author:  2015/05/08, hui.pang create this function
 ****************************************************************************/
extern BOOL udsAppl_GetCommCtrlFlag( Uds_CanCommCtrlSts_E flag );


extern void UdsAppl_DiagDiagnosticSessionCtrl_0x10(void);   /* 0x10 */
extern void UdsAppl_DiagECUReset_0x11(void);                /* 0x11 */
extern void UdsAppl_DiagCommCtrl_0x28(void);                /* 0x28 */
extern void UdsAppl_DiagDTCSettingCtrl_0x85(void);          /* 0x85 */
extern void UdsAppl_DiagTesterPresent_0x3E(void);           /* 0x3E */
extern void UdsAppl_DiagSecurityAccess_0x27(void);          /* 0x27 */
extern void UdsAppl_DiagReadDataByIdentifier_0x22(void);    /* 0x22 */
extern void UdsAppl_DiagWriteDataByIdentifier_0x2E(void);   /* 0x2E */
extern void UdsAppl_DiagReadDTCInformation_0x19(void);      /* 0x19 */
extern void UdsAppl_DiagClearDiagnosticInformation_0x14(void); /* 0x14 */
extern void UdsAppl_DiagInputOutputCtrlByIdentifier_0x2F(void); /* 0x2F */
extern void UdsAppl_DiagRoutineCtrlByIdentifier_0x31(void); /* 0x31 */
extern void UdsAppl_DiagReadMemoryByAddress_0x23(void);     /* 0x23 */
extern void UdsAppl_DiagWriteMemoryByAddress_0x3D(void);    /* 0x3D */

extern BOOL UdsAppl_isInDiagMode(void);

#pragma CODE_SEG  DEFAULT

#endif

/********************* end of uds_diag_appl.h *****************************/

